package com.mezz.bones.im.logic.service;

import com.alibaba.fastjson.JSONObject;
import com.mezz.bones.im.common.message.body.in.*;
import com.mezz.bones.im.common.message.body.out.ConversationRecordRes;
import com.mezz.bones.im.common.message.body.out.ConversationPrivateInfoRes;
import com.mezz.bones.im.common.message.body.out.MessageHasBeenReadRes;
import com.mezz.bones.im.logic.domain.context.PrivateMessageCreateCtx;

import java.util.List;

/**
 * <p>
 * IM单聊 服务类
 * </p>
 *
 * @author mezz
 * @since 2024-12-20
 */
public interface IChatConversationService {

    void flushChatConversationByPrivateMessage(PrivateMessageCreateCtx context);

    String formatMsgContent(String contentType, JSONObject content);

    ConversationPrivateInfoRes getPrivateConversationInfo(ConversationPrivateInfoReq req);

    List<ConversationRecordRes> getUserConversationRecord(ConversationRecordReq req);

    void userRemoveConversation(ConversationRemoveReq req);

    void userTopConversation(ConversationTopReq req);

    MessageHasBeenReadRes messageHasBeenRead(MessageHasBeenReadReq req);

    void clearUnreadCountConversation(ConversationClearUnreadCountReq req);
}
